
#ifndef _BSP_UART_H
#define _BSP_UART_H
#ifndef _BSP_UART_C
#define _BSP_UART_C extern
#endif

/********************************************************************************************
* include:
********************************************************************************************/
#include <stdint.h>


/********************************************************************************************
* Define:
********************************************************************************************/
#define UART0_RX_SIZE           (255)
#define UART1_RX_SIZE           (255)


struct uartDmaDevType{
	uint32_t  uartAdd;
	uint32_t  dmaAdd;
	uint8_t*  rxDmaBuf;
	uint16_t* pRxBufHead;
	uint16_t* pRxBufTail;
    uint16_t  rxDmaBufSize;
	 uint8_t  rxDmaCh:4;
	 uint8_t  txDmaCh:4;
	 uint8_t  rxDmaNvicIrq;
	 uint8_t  txDmaNvicIrq;
	 uint8_t  uartNvicIrq;
};

#define UART_DMA_DEV_NUM  (2)
extern const struct uartDmaDevType uartDmaDevTab[UART_DMA_DEV_NUM];

/********************************************************************************************
* Datas:
********************************************************************************************/



/********************************************************************************************
* Function:
********************************************************************************************/
_BSP_UART_C void bsp_uart_init(uint8_t uart_id, uint32_t baud);

#endif
